%% == Erlang Compiler ==

{erl_opts, [
  debug_info,
  warnings_as_errors,
  warn_unused_vars,
  ewarn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_untyped_record
]}.

%% == Cover ==

{cover_enabled, true}.

{cover_opts, [verbose]}.

%% == Dependencies ==

{deps, []}.

%% == Common Test ==

{ct_compile_opts, [
  debug_info,
  warnings_as_errors,
  warn_unused_vars,
  ewarn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_untyped_record
]}.

{ct_opts, [
  {sys_config, ["config/test.config"]}
]}.

%% == EDoc ==

{edoc_opts, []}.

%% == Plugins ==

{project_plugins, [rebar3_ex_doc]}.

%% == Shell ==

{shell, [{apps, [ebus]}]}.

%% == Dialyzer ==

{dialyzer, [
  {warnings, [
    no_return,
    unmatched_returns,
    error_handling,
    unknown
  ]},
  {plt_apps, top_level_deps},
  {plt_extra_apps, []},
  {plt_location, "priv/plts/local"},
  {plt_prefix, "ebus"},
  {base_plt_location, "priv/plts"},
  {base_plt_prefix, "ebus"}
]}.

%% == Xref ==

{xref_checks, [
  undefined_function_calls,
  undefined_functions,
  locals_not_used,
  deprecated_function_calls,
  deprecated_functions
]}.

%% == Docs ==

{hex, [
  {doc, #{provider => ex_doc}}
]}.

{ex_doc, [
  {source_url, <<"https://github.com/cabol/erlbus">>},
  {extras, [
    <<"README.md">>,
    <<"CHANGELOG.md">>,
    <<"LICENSE">>
  ]},
  {main, <<"readme">>}
]}.
